1. Field of the Invention
The present invention relates to information handling systems and more particularly to virtual machine (VM) migration between processor architectures.
2. Description of the Related Art
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
One issue that relates to information handling systems is virtualization, which refers to the abstraction of information handing system resources. More specifically, virtualization hides physical characteristics of information handling system resources from the way in which other systems, applications, or end users interact with those resources. Virtualization includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or making multiple physical resources (such as storage devices or servers) appear as a single logical resource.
Virtualization is especially prevalent in an enterprise information handing system environment. It is often desirable to use virtualization when performing a VM migration (i.e., moving one virtual machine from one system (logical or physical) to another system). However, with VM migration, especially live VM migration (i.e., when a VM is executing on one system is migrated over to another system where the process of migration is without the system being in a shut down or suspend state), an architectural issue between different CPU vendors and even between generations of products from the same vendor can present itself. This architectural issue is often caused by different features between vendors and between generations of the same vendor. Thus, for example, an issue is presented when attempting to migrate a live Virtual Machine that is executing supplemental streaming extensions, version 4 (SSE4) to a system that is only capable of supporting SSE, version 3 (SSE3) and does not support SSE4 instructions. The VM migration issue can also be present when the VM that is being migrated is not in a live state (e.g., either is operating in a shut down or suspend state).
The issue presents itself when an application loads and executes a processor identification (e.g., a CPUID) instruction. This instruction returns a processor identifier (ID) and feature information. An application uses this information to set which path to take based on the features and instruction set of the given CPU. Examples of CPUID instruction and results can be found in “Intel® 64 and IA-32 Architectures Software Developer's Manual—Volume 2A—Instruction Set Reference, A-M”. When an application is live and executing to a given instruction set and/or feature set, live migration between systems can only occur if the target system has the same feature support as the source system. For example, FIG. 1, labeled Prior Art, shows a flow chart of an example program load.
Another issue relating to VM migration can be present when an application program that does not issue a processor identification instruction to make code path decisions. In this situation, the application does not have knowledge of the complete processor instruction and feature set.